package com.xoms.front.persist.dao;

import com.xoms.front.controller.res.BaseResult;
import com.xoms.front.controller.res.ObjectResult;
import com.xoms.front.controller.res.bean.*;
import com.xoms.front.controller.springmvc.req.*;
import com.xoms.front.model.*;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: tzz(Tian)
 * Date: 2018/5/25 14:49
 */
public interface RoomDao {
    /**
     * @Description:   selectDimensions 查询维度列表信息
     * @author:        tzz
     * @Param:         []
     * @Return:        java.util.List<com.xoms.admin.persist.dao.RoomDimension>
     * @Date:          2018/4/28 12:39
     */
    List<RoomDimensionBean> selectDimensions();

    /**
     * 获取详细列表
     * @param param
     * @return
     */
    List<RRoomDimensionDetailBean> getDimensionDetailList(GetRoomDimensionDetailsParam param);

    /**
     * 获取状态列表
     * @return
     */
    List<RRoomStatusListBean> getRoomStatusList(String scales);

    /**
     * 影厅列表
     * @param param
     * @return
     */
    List<RRoomListBean> getRoomList(GetRoomListParam param);

    List<RFilmListBean> getFilmList(GetFilmListParam param);

    /**
     *  获取卡列表
     * @param userId
     * @param setPhoneLogin 0未设置 1已设置，不传输不筛选
     * @return
     */
    List<RCardInfoBean> getCardList(String userId, int setPhoneLogin);

    RCardInfoBean getCardInfo(String cardNo);

    int roomLock(RoomLockParam param);

    MemberBean getMember(String id, String phoneNum);

    RRoomPriceBean getPrice(String id, String btime, String etime);

    int createOrder(OrderBean order, RoomOpenBean open, RoomOpenAddBean add);

    OrderBean selectRoomOrder(String id, String roomId, String OrderNo);

    AccountBean selectAccountByTel(String phoneNum);

    int setOrderAuthPrice(EditOrderAuthPriceParam param, String accId);

    int roomOpen(RoomOpenParam param);

    RRoomInfoBean selectRoomById(String id);

    List<RRoomBookInfoBean> getRoomBookList(String id);

    /**
     * 支付方式
     * @param param
     * @param orderType 订单类型：1影厅开厅2续时消费3转厅4商品消费5会员卡充值
     * @return
     */
    int orderPayWay(RoomOrderPayWayParam param, int orderType);

    RoomOpenBean getRoomOpenOrder(String orderCode);

    OrderBean getCurrentOrder(String id);
}
